package com.zr.d_c.dao;

import java.util.List;

import com.zr.d_c.model.Dish;

/**
 * 该接口用来对菜品进行增删改查等操作，
 * @author wangzeping 
 *
 */
public interface DishDao {
	/**
	 * 通过商家的sid查询商家下面有什么菜品，并进行分页
	 * @param sid 商家sid
	 * @param start 开始页面
	 * @param pageSize 一页的大小
	 * @return 返回商家菜品列表
	 */
	public List<Dish> selsectDishBySid(int sid,int start,int pageSize);

	/**
	 * 通过商家sid和不完整菜品名模糊查询菜品，并进行分页
	 * @param sid 商家sid
	 * @param dname 菜品名
	 * @param start 开始页面
	 * @param pageSize 一页的大小
	 * @return 返回商家菜品列表
	 */
	public List<Dish> selectDishBySidAndBydname(int sid,String dname,int start,int pageSize);

	/**
	 * 添加菜品，通过商家sid添加到商家菜单下
	 * @param dish 菜品实体
	 * @param sid 商家sid
	 * @return 成功返回 true ，失败返回false
	 */
	public boolean insertDish(Dish dish,int sid);

	/**
	 * 修改菜品
	 * @param dish 修改信息，包含需要修改的菜品did
	 * @param sid 商家sid 
	 * @return 成功返回 true ，失败返回false
	 */
	public boolean updateDish(Dish dish,int sid);
	/**
	 * 重载菜品修改 通过菜品信息直接修改
	 * @param dish 菜品修改信息，包含需要修改的菜品did
	 * @return 成功返回 true ，失败返回false
	 */
	public boolean updateDish(Dish dish);

	/**
	 * 通过菜品did将菜品isdelete属性变为true
	 * @param did 菜品did数组
	 * @return 全部成功则返回true 失败返回false
	 */
	public boolean deleteDish(int did[]);

	/**
	 * 查询当前商家有多少菜品
	 * @param sid 商家sid
	 * @return 菜品数量
	 */
	public int getDishNumBySid(int sid);

	/**
	 * 模糊查询当前商家有多少菜品
	 * @param sid 商家sid
	 * @param dname 菜品名
	 * @return 菜品数
	 */
	public int getDishNumBySidAndDname(int sid,String dname);

	/**
	 * 从指定文件路径批量导入菜品到数据库
	 * @param path 指定文件路径
	 * @return 成功返回true
	 */
	public boolean insertAllDish(String path,int sid);

	/**
	 * 上传图片路径
	 * @param path 图片路径
	 * @param did 菜品did
	 * @return 有相同名称的菜品返回0，失败返回-1，成功返回1
	 */
	public int insertImageDish(String path,int did);

	/**
	 * 根据菜品id查找菜品信息
	 * @param did 菜品id
	 * @return 菜品信息
	 */
	public Dish selectDishByDid(int did);
	
	/**
	 * 订单生成成功更新商家菜品的数量
	 * @param did 菜品id
	 * @param dnum 菜品新数量
	 */
	public void updateDnum(int did,int dnum);
	
	/**
	 * 根据商家id和菜品名字查找菜品信息
	 * @param sid 商家id
	 * @param dname 菜品名字
	 * @return 菜品信息
	 */
	public Dish selectDishBySidAndDname(int sid, String dname);

}
